//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.itheima.pinda.authority.dto.auth;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotEmpty;

@ApiModel(
        value = "LoginParamDTO",
        description = "登录参数"
)
public class LoginParamDTO {
    @ApiModelProperty("验证码KEY")
    @NotEmpty(
            message = "验证码KEY不能为空"
    )
    private String key;
    @ApiModelProperty("验证码")
    @NotEmpty(
            message = "验证码不能为空"
    )
    private String code;
    @ApiModelProperty("账号")
    @NotEmpty(
            message = "账号不能为空"
    )
    private String account;
    @ApiModelProperty("密码")
    @NotEmpty(
            message = "密码不能为空"
    )
    private String password;

    public static LoginParamDTOBuilder builder() {
        return new LoginParamDTOBuilder();
    }

    public String getKey() {
        return this.key;
    }

    public String getCode() {
        return this.code;
    }

    public String getAccount() {
        return this.account;
    }

    public String getPassword() {
        return this.password;
    }

    public LoginParamDTO setKey(final String key) {
        this.key = key;
        return this;
    }

    public LoginParamDTO setCode(final String code) {
        this.code = code;
        return this;
    }

    public LoginParamDTO setAccount(final String account) {
        this.account = account;
        return this;
    }

    public LoginParamDTO setPassword(final String password) {
        this.password = password;
        return this;
    }

    public LoginParamDTO() {
    }

    public LoginParamDTO(final String key, final String code, final String account, final String password) {
        this.key = key;
        this.code = code;
        this.account = account;
        this.password = password;
    }

    public String toString() {
        return "LoginParamDTO(super=" + super.toString() + ", key=" + this.getKey() + ", code=" + this.getCode() + ", account=" + this.getAccount() + ", password=" + this.getPassword() + ")";
    }

    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof LoginParamDTO)) {
            return false;
        } else {
            LoginParamDTO other = (LoginParamDTO)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label59: {
                    Object this$key = this.getKey();
                    Object other$key = other.getKey();
                    if (this$key == null) {
                        if (other$key == null) {
                            break label59;
                        }
                    } else if (this$key.equals(other$key)) {
                        break label59;
                    }

                    return false;
                }

                Object this$code = this.getCode();
                Object other$code = other.getCode();
                if (this$code == null) {
                    if (other$code != null) {
                        return false;
                    }
                } else if (!this$code.equals(other$code)) {
                    return false;
                }

                Object this$account = this.getAccount();
                Object other$account = other.getAccount();
                if (this$account == null) {
                    if (other$account != null) {
                        return false;
                    }
                } else if (!this$account.equals(other$account)) {
                    return false;
                }

                Object this$password = this.getPassword();
                Object other$password = other.getPassword();
                if (this$password == null) {
                    if (other$password != null) {
                        return false;
                    }
                } else if (!this$password.equals(other$password)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof LoginParamDTO;
    }

    public int hashCode() {
        boolean PRIME = true;
        int result = 1;
        Object $key = this.getKey();
        result = result * 59 + ($key == null ? 43 : $key.hashCode());
        Object $code = this.getCode();
        result = result * 59 + ($code == null ? 43 : $code.hashCode());
        Object $account = this.getAccount();
        result = result * 59 + ($account == null ? 43 : $account.hashCode());
        Object $password = this.getPassword();
        result = result * 59 + ($password == null ? 43 : $password.hashCode());
        return result;
    }

    public static class LoginParamDTOBuilder {
        private String key;
        private String code;
        private String account;
        private String password;

        LoginParamDTOBuilder() {
        }

        public LoginParamDTOBuilder key(final String key) {
            this.key = key;
            return this;
        }

        public LoginParamDTOBuilder code(final String code) {
            this.code = code;
            return this;
        }

        public LoginParamDTOBuilder account(final String account) {
            this.account = account;
            return this;
        }

        public LoginParamDTOBuilder password(final String password) {
            this.password = password;
            return this;
        }

        public LoginParamDTO build() {
            return new LoginParamDTO(this.key, this.code, this.account, this.password);
        }

        public String toString() {
            return "LoginParamDTO.LoginParamDTOBuilder(key=" + this.key + ", code=" + this.code + ", account=" + this.account + ", password=" + this.password + ")";
        }
    }
}
